#Francisco M. Ulloa 8090851

#Exerccio 7b

#1 Galileu estava Certo?

##y = a+bx+cx^2+dx^3

setwd("F:\\Libros R\\1 R Panch")

init.h = c(600, 700, 800, 950, 1100, 1300, 1500)
h.d = c(253, 337, 395, 451, 495, 534, 573)

plot(h.d~init.h)

mod1 <- lm(h.d~init.h)

mod2 <- update(mod1,.~. +I(init.h^2))

mod3 <- update(mod2,.~. +I(init.h^3))

anova(mod1,mod2,mod3)

abline(mod1)
cf.m2 <- coef(mod2)
cf.m3 <- coef(mod3)

curve(cf.m2[1]+cf.m2[2]*x+cf.m2[3]*x^2, add=T, lty=3)
curve(cf.m3[1]+cf.m3[2]*x+cf.m3[3]*x^2+cf.m3[4]*x^3, add=T, lty=2,col=2)

summary(mod2)
summary(mod3)

##O polinmio de terceiro grau demostrou ser um melhor modelo, com os dados mais ajustado.

#2 Massa de Recm-Nascidos

baby<-read.csv("babies.txt",sep=" ",header=TRUE,as.is=TRUE)
str(baby)
head(baby)
summary(baby)

bb.Nas<- is.na(baby)
table(bb.NAs)

baby$bwt[is.na(baby$bwt)] <- 0
baby$gestation[is.na(baby$gestation)]<-0
baby$parity[is.na(baby$parity)]<-0
baby$age[is.na(baby$age)]<-0
baby$height[is.na(baby$height)]<-0
baby$weight[is.na(baby$weight)]<-0
baby$smoke[is.na(baby$smoke)]<-0


plot(baby$weight~baby$bwt)

b.mod1 <- lm(baby$weight~baby$bwt)
b.mod2 <- update(b.mod1,.~. +I(baby$bwt^2))
b.mod3 <- update(b.mod2,.~. +I(baby$bwt^3))
b.cf.m2 <- coef(b.mod2)
b.cf.m3 <- coef(b.mod3)
curve(b.cf.m2[1]+b.cf.m2[2]*x+b.cf.m2[3]*x^2, add=T, lty=3)
curve(b.cf.m3[1]+b.cf.m3[2]*x+b.cf.m3[3]*x^2+b.cf.m3[4]*x^3, add=T, lty=2,col=2)
summary(b.mod2)
summary(b.mod3)

plot(baby$weight~baby$gestation)
bg.mod1 <- lm(baby$weight~baby$gestation)
bg.mod2 <- update(bg.mod1,.~. +I(baby$gestation^2))
bg.mod3 <- update(bg.mod2,.~. +I(baby$gestation^3))
bg.cf.m2 <- coef(bg.mod2)
bg.cf.m3 <- coef(bg.mod3)
curve(bg.cf.m2[1]+b.cf.m2[2]*x+bg.cf.m2[3]*x^2, add=T, lty=3)
curve(bg.cf.m3[1]+b.cf.m3[2]*x+bg.cf.m3[3]*x^2+bg.cf.m3[4]*x^3, add=T, lty=2,col=2)
summary(bg.mod2)
summary(bg.mod3)

plot(baby$weight~baby$parity)
bp.mod1 <- lm(baby$weight~baby$parity)
bp.mod2 <- update(bp.mod1,.~. +I(baby$parity^2))
bp.mod3 <- update(bp.mod2,.~. +I(baby$parity^3))
bp.cf.m2 <- coef(bp.mod2)
bp.cf.m3 <- coef(bp.mod3)
curve(bp.cf.m2[1]+b.cf.m2[2]*x+bp.cf.m2[3]*x^2, add=T, lty=3)
curve(bp.cf.m3[1]+b.cf.m3[2]*x+bp.cf.m3[3]*x^2+bp.cf.m3[4]*x^3, add=T, lty=2,col=2)
summary(bp.mod2)
summary(bp.mod3)

plot(baby$weight~baby$age)
ba.mod1 <- lm(baby$weight~baby$age)
ba.mod2 <- update(ba.mod1,.~. +I(baby$age^2))
ba.mod3 <- update(ba.mod2,.~. +I(baby$age^3))
ba.cf.m2 <- coef(ba.mod2)
ba.cf.m3 <- coef(ba.mod3)
curve(ba.cf.m2[1]+ba.cf.m2[2]*x+ba.cf.m2[3]*x^2, add=T, lty=3)
curve(ba.cf.m3[1]+ba.cf.m3[2]*x+ba.cf.m3[3]*x^2+ba.cf.m3[4]*x^3, add=T, lty=2,col=2)
summary(ba.mod2)
summary(ba.mod3)

plot(baby$weight~baby$height)
bh.mod1 <- lm(baby$weight~baby$height)
bh.mod2 <- update(bh.mod1,.~. +I(baby$height^2))
bh.mod3 <- update(bh.mod2,.~. +I(baby$height^3))
bh.cf.m2 <- coef(bh.mod2)
bh.cf.m3 <- coef(bh.mod3)
curve(bh.cf.m2[1]+bh.cf.m2[2]*x+bh.cf.m2[3]*x^2, add=T, lty=3)
curve(bh.cf.m3[1]+bh.cf.m3[2]*x+bh.cf.m3[3]*x^2+bh.cf.m3[4]*x^3, add=T, lty=2,col=2)
summary(bh.mod2)
summary(bh.mod3)

plot(baby$weight~baby$smoke)
bs.mod1 <- lm(baby$weight~baby$smoke)
bs.mod2 <- update(bs.mod1,.~. +I(baby$smoke^2))
bs.mod3 <- update(bs.mod2,.~. +I(baby$smoke^3))
bs.cf.m2 <- coef(bs.mod2)
bs.cf.m3 <- coef(bs.mod3)
curve(bs.cf.m2[1]+bs.cf.m2[2]*x+bs.cf.m2[3]*x^2, add=T, lty=3)
curve(bs.cf.m3[1]+bs.cf.m3[2]*x+bs.cf.m3[3]*x^2+bs.cf.m3[4]*x^3, add=T, lty=2,col=2)
summary(bs.mod2)
summary(bs.mod3)

anova(b.mod1,b.mod2,b.mod3)
anova(bg.mod1,bg.mod2,bg.mod3)
anova(bp.mod1,bp.mod2,bp.mod3)
anova(ba.mod1,ba.mod2,ba.mod3)
anova(bh.mod1,bh.mod2,bh.mod3)
anova(bs.mod1,bs.mod2,bs.mod3)


modelo.2<-c(summary(b.mod2)$r.squared,summary(bg.mod2)$r.squared,summary(bp.mod2)$r.squared,summary(ba.mod2)$r.squared,summary(bh.mod2)$r.squared,summary(bs.mod2)$r.square)

modelo.3<-c(summary(b.mod3)$r.squared,summary(bg.mod3)$r.squared,summary(bp.mod3)$r.squared,summary(ba.mod3)$r.squared,summary(bh.mod3)$r.squared,summary(bs.mod3)$r.square)

comp<-data.frame(modelo.2,modelo.3)
comp

### O modelo mais ajustado  o polinmio de terceiro grau,
### em que a varivel preditora (x)  a altura.

### o ANOVA indicou significncia nos modelos com as variveis "bwt" (segundo grau), 
### "gestao" (segundo grau), "idade" (terceiro grau), "altura" (segundo e terceiro grau)
### e "smoke" (segundo grau). 